이상현상과 함수종속성
이상현상
이상현상이란 테이블에 튜플을 삽입할 때 부득이하게 NULL 값이 입력되거나, 삭제시 연쇄삭제 현상이 발생하거나, 수정 시 데이터의 일관성이 훼손되는 현상을 말한다.
이상현상의 종류
이상현상 종류에 대해 알아보기 위해 아래와 같은 테이블이 있다고 가정해보자.
학생번호 | 학생이름 | 학과 | 주소 | 강좌이름 | 강의실 |
---|---|---|---|---|---|
501 | 박지성 | 컴퓨터과 | 영국 맨체스터 | 데이터베이스 | 공학관 110 |
401 | 김연아 | 체육학과 | 대한민국 서울 | 데이터베이스 | 공학관 110 |
402 | 장미란 | 체육학과 | 대한민국 강원도 | 스포츠 경영학 | 체육관 103 |
502 | 추신수 | 컴퓨터과 | 미국 클리블랜드 | 자료구조 | 공학관 111 |
501 | 박지성 | 컴퓨터과 | 영국 맨체스터 | 자료구조 | 공학관 111 |
1. 삭제 이상
삭제이상이란 튜플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상이다.
예를 들어, 장미란 학생이 스포츠경영학 과목을 수강 취소하여 DELETE 문으로 세 번째 튜플을 삭제하였다고 가정해보자.
그러면 원하지 않은 장미란 학생의 학생번호, 학과, 주소 정보가 같이 없어지는 일이 벌어진다. 이것이 삭제 이상이다.
2. 삽입 이상
삽입이상이란 튜플 삽입 시 특정 속성에 해당하는 값이 없어 NULL 값을 입력해야 하는 현상이다.
예를 들어 박세리 학생이 체육학과에 입학하여 INSERT 문으로 (학생번호, 학생이름, 학과, 주소) 정보를 삽입하였다. 그런데 아직 수강신청은 하지 않은 상태라 (강좌이름, 강의실) 속성에는 NULL값을 입력하였다. 여기서 NULL은 특별히 처리되므로 문제가 될 수 있다. 이것이 바로 삽입 이상이다.
3. 갱신 이상
갱신이상이란 튜플 수정시 중복된 데이터의 일부만 수정되어 데이터의 불일치 문제가 일어나는 현상이다.
예를 들어 박지성 학생의 주소가 대한민국 서울로 바뀌었다고 가정해보자. 박지성 선수의 튜플은 현재 두개가 존재하는데 이것이 만약 주소가 한개만 업데이트가 된다면 데이터의 일관성이 깨지는 문제가 생긴다. 이것이 갱신이상이다.
함수 종속성
이상현상이 발생하는 테이블을 수정하여 정상으로 만드는 과정을 정규화라고 하는데, 정규화를 하기 위해서는 먼저 테이블을 분석하여 기본키와 함수 종속성을 파악해야 한다.
어떤 릴레이션 R이 있을 때 X와 Y를 각각 속성의 부분집합이라고 해보자. 여기서 X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때, Y는 X에 함수적 종속이라고 한다. 또한, 이 경우 X를 결정자, Y를 종속자 라고 한다. 이를 기호로 표현하면 X -> Y 이다.
함수 종속성 종류
함수 종속성 종류에는 크게 3가지가 있다. 바로 완전 함수적 종속, 부분 함수적 종속, 이행적 함수 종속이다.
1. 완전 함수적 종속
완전 함수적 종속이란, 종속자가 기본키에만 종속되며, 기본키가 여러 속성으로 구성되어 있을 경우 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우이다.
고객 ID | 상품코드 | 주문상품 | 수량 | 가격 |
---|---|---|---|---|
A01 | T01 | 티셔츠 | 2 | 12000 |
A01 | B10 | 청바지 | 1 | 11000 |
해당 릴레이션의 기본키는 고객 ID와 상품 코드로 구성되어 있다. 여기서 수량 속성은 기본키를 구성하는 고객ID, 상품코드 속성을 모두 알아야 식별할 수 있기 때문에 수량은 완전 함수 종속된 관계이다.
2. 부분 함수적 종속
부분 함수적 종속이란, 릴레이션에서 종속자가 이 기본키가 아닌 다른 속성에 종속되거나, 기본키가 여러 속성으로 구성되어 있을 경우 기본키를 구성하는 속성 중 일부만 종속되는 경우이다.
고객 ID | 상품코드 | 주문상품 | 수량 | 가격 |
---|---|---|---|---|
A01 | T01 | 티셔츠 | 2 | 12000 |
A01 | B10 | 청바지 | 1 | 11000 |
주문 상품은 기본키 중에 상품코드만 알아도 식별할 수 있다. 이 경우 주문 상품 속성은 기본키에 부분 함수 종속된 관계이다.
3. 이행적 함수 종속
릴레이션에서 X, Y, Z라는 3개의 속성이 있을 때 X -> Y, Y -> Z 란 종속관계가 있을 경우 X -> Z가 성립될 때 이행적 함수 종속이라고 한다. 즉, X를 알면 Y를 알고 그를 통해 Z를 알 수 있는 경우를 말한다.
회원번호 | 이름 | 나이 | 거주지역 |
---|---|---|---|
A01 | 송민지 | 17 | 서울 |
A02 | 박아람 | 15 | 부산 |
위 릴레이션에서 회원번호를 알면 이름을 알 수 있고, 이름을 알면 나이를 할 수 있다. 따라서 회원번호를 알면 나이를 알 수 있으므로 이행적 함수 종속 관계이다.
나올 수 있는 면접 질문
- 이상 현상이란 무엇인가요?
- 이상 현상의 종류에는 어떤 것이 있고 각각 무엇을 의미하나요?
- 함수 종속성이란 무엇인가요?
- 대표적인 함수 종속성 종류와 그에 대해 말해보세요.
참고 url
기여자
Kyun Heo
📦